<?php
/**
 * 轻舟CMS(QZLOG)
 *
 * 一款基于PHP+MYSQL的开源内容管理系统，模板标签简单、可扩展性强，利于二次开发，轻松建站的首选利器。
 *
 * @package     QZLOG
 * @license     http://www.qzlog.com/license
 * @link        http://www.qzlog.com
 * @mail        info@shyohan.com
 * @since       Version 3.0
 * @copyright   Copyright (c) 2015 - 2017 上海优翰信息科技有限公司. All rights reserved.
 */

defined('IN_QZLOG') OR exit('QZLOG:No direct script access allowed!');

/**
 * 配置组管理模型
 * @author LINK <link@shyohan.com>
 */
class ConfigGroupModel extends Model
{
    //配置组
    public $table = 'config_group';

    //自动验证
    public $validate = array(
        array('name', 'nonull', '组名不能为空', 2, 3),
        array('name', 'IsName', '组名已经存在', 2, 3),
        array('title', 'nonull', '组标题不能为空', 2, 3),
        array('title', 'IsTitle', '组标题已经存在', 2, 3)
    );

    /**
     * 验证组名
     * @author LINK <link@shyohan.com>
     * @param $name
     * @param $value
     * @param $msg
     * @param $arg
     * @return bool
     */
    public function IsName($name, $value, $msg, $arg)
    {
        $name = Q('name');
        //编辑时排除当前配置组
        if ($id = Q('id')) {
            $map['id'] = array('NEQ', $id);
        }
        $map['name'] = array('EQ', $name);
        if (M('config_group')->where($map)->find()) {
            return $msg;
        } else {
            return true;
        }
    }

    /**
     * 组标题
     * @author LINK <link@shyohan.com>
     * @param $name
     * @param $value
     * @param $msg
     * @param $arg
     * @return bool
     */
    public function IsTitle($name, $value, $msg, $arg)
    {
        $title = Q('title');
        //编辑时排除当前配置组
        if ($id = Q('id')) {
            $map['id'] = array('NEQ', $id);
        }
        $map['title'] = array('EQ', $title);
        if (M('config_group')->where($map)->find()) {
            return $msg;
        } else {
            return true;
        }
    }

    /**
     * 获取组列表
     * @author LINK <link@shyohan.com>
     * @return mixed
     */
    public function getGroup()
    {
        return $this->where(array('isshow' => 1))->all();
    }

    /**
     * 添加配置组
     * @author LINK <link@shyohan.com>
     */
    public function addConfigGroup()
    {
        if ($this->create()) {
            if ($this->add()) {
                return true;
            } else {
                $this->error = '添加失败';
                return false;
            }
        }
    }

    /**
     * 修改配置组
     * @author LINK <link@shyohan.com>
     */
    public function editConfigGroup()
    {
        if ($this->create()) {
            if ($this->save()) {
                return true;
            } else {
                $this->error = '添加失败';
                return false;
            }
        }
    }

    /**
     * 删除配置组
     * @author LINK <link@shyohan.com>
     * @return bool
     */
    public function delConfigGroup()
    {
        $id = Q('id', 0, 'intval');
        $map['id'] = array('EQ', $id);
        if ($this->where($map)->del()) {
            return M('config')->where("id=$id")->del();
        } else {
            $this->error = '删除失败';
            return false;
        }
    }
}